<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8" />
        <title>14_预解析-特点</title>
    </head>
    <body>
        <script>
            // (1) 函数会解析带var的变量 和 function定义的函数
            // console.log(a);
            // a = 1;
            // console.log(a);


            // f1();

            // var f1 = function(){
            //     console.log(11111);
            // }


            // （2）函数提升的优先级要高于变量提升的优先级
            // console.log(a);
            // var a = 1;
            // function a(){

            // }


            // （3）如果函数重复 后面的函数会覆盖前面的函数

            // a();

            // function a(){
            //     console.log(1111);
            // }

            // function a(){
            //     console.log(2222);
            // }


            // （4）如果函数和变量重名  那么会忽略变量
            
            
            // console.log(a);

            // var a = 1;
            // function a (){
            //     console.log(111);
            // }


            // 变量提升的结果是
            // function a (){
            //     console.log(111);
            // }
            // var a;
            // console.log(a);
            // a = 1;


            // （5）函数定义的方式不同  那么预解析的结果也是不同的

            // console.log(a);

            // 函数声明定义函数   会整体结构提升
            // function a(){
            //     console.log(111);
            // }


            // 表达式定义函数  会提升变量的声明
            console.log(a);

            var a = function(){
                console.log('我还是有点热');
            }

            // 预解析的结果是
            var a;
            console.log(a);
            a = function(){
                console.log('我还是有点热');
            }




        </script>
    </body>
</html>